﻿namespace KingerRobot.MexicoSailunWMS.SpiService;
internal interface IBakWcsTask
{
    /// <summary>
    /// 根据其实库位设备获取备份任务数据
    /// </summary>
    /// <param name="equipId">设备ID</param>
    /// <returns></returns>
    List<POBakWcsTask> GetBakWcsTasksByStartEquip(long equipId);
    /// <summary>
    /// 根据时间查询历史任务信息
    /// </summary>
    /// <param name="startTime">开始时间</param>
    /// <param name="endTime">结束时间</param>
    /// <returns></returns>
    List<POBakWcsTask> GetBakWcsTasksByDate(DateTime startTime, DateTime endTime);
    /// <summary>
    /// 获取入库汇总信息
    /// </summary>
    /// <param name="parm"></param>
    /// <returns></returns>
    List<OutWorkCount> GetInWareHouseTaskBean(WareHouseTaskParm parm);
    /// <summary>
    /// 获取出库汇总信息
    /// </summary>
    /// <param name="parm"></param>
    /// <returns></returns>
    List<OutWorkCount> GetOutWareHouseTaskBean(WareHouseTaskParm parm);
    /// <summary>
    /// 根据时间和类型查询历史任务信息
    /// </summary>
    /// <param name="startTime"></param>
    /// <param name="endTime"></param>
    /// <param name="type"></param>
    /// <returns></returns>
    List<BakTaskSkuBean> GetBakWcsTasksByDateAndType(DateTime startTime, DateTime endTime, int type);

    /// <summary>
    /// 通过类型和SkuId获取任务
    /// </summary>
    /// <param name="skuId"></param>
    /// <param name="type"></param>
    /// <returns></returns>
    POBakWcsTask GetBakTaskBySkuIdAndType(long skuId, int type);

    /// <summary>
    /// 通过出库订单从表获取任务
    /// </summary>
    /// <param name="summaryId"></param>
    /// <returns></returns>
    POBakWcsTask GetBakTasksBySummaryId(long summaryId);

    List<MaterialGroupBean> GetMaterialGroupByDateAndType(int type, DateTime startTime, DateTime endTime);
    /// <summary>
    /// 查询异常任务
    /// </summary>
    /// <param name="barCode"></param>
    /// <returns></returns>
    List<AbnormalBean> GetAbnormalTask(string barCode);
}
public class MaterialGroupBean
{
    public string MaterialCode { get; set; }
    public int MaterialCount { get; set; }
}

public class BakTaskSkuBean
{
    public long SkuId { get; set; }
    public long TargetLoc { get; set; }

}